import request from '@/utils/request'
import type {
  DataFormatInfo,
  DataFormatQuery,
  DataFormatExportParams,
  DataFormatPageResult,
  DataFormatDeleteParams,
  ApiResponse
} from './types'

// 查询数据格式列表
export function getDataFormatList(params: DataFormatQuery): Promise<ApiResponse<DataFormatPageResult>> {
  return request({
    url: '/protocol/dataformat/list',
    method: 'get',
    params
  })
}

// 导出数据格式列表
export function exportDataFormatList(params: DataFormatExportParams): Promise<Blob> {
  return request({
    url: '/protocol/dataformat/export',
    method: 'post',
    data: params,
    responseType: 'blob'
  })
}

// 获取数据格式详情
export function getDataFormatDetail(dataFormatId: string): Promise<ApiResponse<DataFormatInfo>> {
  return request({
    url: `/protocol/dataformat/${dataFormatId}`,
    method: 'get'
  })
}

// 新增数据格式
export function addDataFormat(data: DataFormatInfo): Promise<ApiResponse<void>> {
  return request({
    url: '/protocol/dataformat',
    method: 'post',
    data
  })
}

// 修改数据格式
export function updateDataFormat(data: DataFormatInfo): Promise<ApiResponse<void>> {
  return request({
    url: '/protocol/dataformat',
    method: 'put',
    data
  })
}

// 删除数据格式
export function deleteDataFormat(params: DataFormatDeleteParams): Promise<ApiResponse<void>> {
  return request({
    url: `/protocol/dataformat/${params.dataFormatIds}`,
    method: 'delete'
  })
}